<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.js"></script>
</head>
<body>
    <div id="app">
        <!-- v-on可以简写为@:v-on:click ==>@click="" -->

        <!-- 绑定事件函数没有加小括号，则在事件函数中直接使用第一个形参接受event事件对象 -->
        <button @click="fn1">点击</button>
        <!-- 一旦在给事件绑定事件函数的时候,添加了括号,事件函数不会直接调用,还是等事件触发的时候才调用 -->
        <!-- 但是此时，我们不能直接在形参中接收event事件对象了 -->
        <!-- 我们需要在绑定事件函数的小括号中，显性传递一个$event实参(在v-on绑定事件的插值语法中，默认是存在一个$event的值，代表当前的event事件对象)，将来在事件函数中接收，接收的这个值就是event事件对象 -->
        <button @click="fn2($event)">点击2</button>
        <!-- 传递多个参数时的情况 -->
        <button @click="fn3($event,2)">点击3</button>
    </div>

    <script>
        // Vue.config是一个对象，包含Vue的全局配置，设置为false以阻止vue在启动时生成生产提示

        Vue.config.productionTip =false;

        const vm = new Vue({
            el:"#app",
            data(){
                return{
                    // 事件函数不推荐写在data中
                    // -data中是数据存放的地方
                    // -如果放在data中，vue并没有帮我们处理data中函数的this
                }
            },
            // methods配置项，主要用来书写回调函数
            methods:{
                fn1(event){
                    console.log(event,"fn1");
                },
                fn2(event){
                    console.log(event,"fn2");
                },
                fn3(event,a){
                    console.log(event,"fn3");
                }
            }
        })
    </script>
</body>
</html>